In object-oriented programming, operator overloading?less commonly known as operator ad-hoc polymorphism?is a specific case of polymorphism, where different operators have different implementations depending on their arguments. Operator overloading is generally defined by the language, the programmer, or both.